1. Field of the Invention
The present invention relates generally to the field of telecommunications and, more specifically, to a programmable telecommunication switch which may reside within a personal computer.
2. Discussion of the Prior Art
User-programmable telecommunication switches are used in a wide variety of applications such as voice messaging, telemarketing services and the like. A programmable switch is usually controlled by a host device, which is typically a computer that runs an application program. A customer may either purchase a commercially available application program that is compatible with the host and switch hardware or may elect to write a custom program.
As the application program runs, the host issues instructions to the switch by way of a communication channel. The switch responds to these instructions by taking appropriate action, which may include issuing a response to the host to confirm receipt or execution of the instructions.
Conventional programmable switches exhibit several disadvantages which unduly limit their utility in many applications. For example, a conventional switch that requires its host device to become involved with call processing tasks that must be performed in "real time" creates a significant processing burden on the host. The term "real time" is used herein to refer generally to call processing (e.g., sending or receiving digits) or other tasks which must be executed within a time period on the order of tens of milliseconds. If the host is running under an operating system, such as DOS.RTM. or UNIX.RTM., which is user or application-oriented and not designed for real time operation, the real time demands made by the switch will tend to monopolize the host's processing resources. This may, in turn, force the customer to undesirably limit the amount of traffic through the switch so that the host can maintain control.
This problem is not satisfactorily solved by simply installing a real time operating system on the host. This is because the multitude of real time call processing tasks generated by a switch having a few hundred ports would still occupy so much of the host's resources that the application program could not run properly. Moreover, most commercially available computers which could be used as hosts do not operate on any widely used real time operating system. Prospective customers express a strong preference, if not an absolute demand, for a host operating system that is widely used and represents no significant barrier to developing custom applications software.
Another disadvantage of conventional programmable switches is that they can only be connected to one host at a time. This means that should the host malfunction or fail, the switch will not be controllable and service will be impaired or completely lost.